Data Authenticator for the Deployable Seismic Verification System
[123]
[124]
12/17/89 whp
AUTHENTICATOR MESSAGE FORMATS AND PROTOCOL
Frame Start is activated through -INTO. This causes the current
key to be loaded into the V and F registers and R cleared. Frame
Start in progress is indicated by a Oscillator Busy status.
Data sent to the authenticator activates -INT1. Data should only
be sent to the authenticator when the -INT1 bit in the status
byte is clear. The Data Ready status bit indicates that valid
data is available. Data Ready is cleared when the byte is read.
A clear Software Busy bit of the status byte, bit 4, indicates
that the authenticator is ready to receive a message. The
authenticator reads the Data in byte at offset 5 and discards it
prior to clearing the Software Busy bit.
SEND and RECEIVE Message Format
Bytes Name Comment
1 LENGTH Character count of all
characters in message.
1 OPCODE Message type
0-251 DATA Optional data bytes
2 CRC Crc checksum
All authenticator checksum computations use the IBM SDLC checking
polynomial x16+x12+x5+1.
[125]
AUTHENTICATOR KEY STORAGE DATA STRUCTURES
Offset Name Comments
0 Status bit
Active 0's 0 key initialized
1 key in use
2 key deactivated
3 not used
4 not used
5 not used
6 not used
7 key checksum failed
1 V1 High byte V register
2 V0 Low byte V register
3 F7 Highest byte F register
4 F6
5 F5
6 F4
7 F3
8 F2
9 F1
10 F0 Lowest byte F register. Bit 0 is
unused and set to 0. Bit 0 is the
lowest bit.
11 CRC1 High byte of CRC of V and F keys
12 CRC0 Low byte of CRC
13 DI6 Year key initialized
14 DI5 Month key initialized
15 DI4 Day key initialized
16 DI3 Day of week key initialized
17 DI2 Seconds key initialized
18 DI1 Minute key initialized
19 DI0 Hour key initialized
20 DS6 Year key activated
21 DS5 Month key activated
22 DS4 Day key activated
23 DS3 Day of week key activated
24 DS2 Seconds key activated
25 DS1 Minute key activated
26 DS0 Hour key activated
27 DE6 Year key deactivated
28 DE5 Month key deactivated
29 DE4 Day key deactivated
30 DE3 Day of week key deactivated
31 DE2 Seconds key deactivated
32 DE1 Minute key deactivated
33 DE0 Hour key deactivated
34 FC3 Highest byte software frame counter
35 FC2
36 FC1
37 FC0 Lowest byte software frame counter
[126]
AUTHENTICATOR MESSAGES
Acknowledge/Negative Acknowledge reaponse RECEIVE
The message is sent as a response to a short, long, or incorrect
checksum message. It may be used with zero status as an positive
acknowledgment.
Offset Name Comments
0 5 Length
1 0 Opcode
2 status 0=okay
1=bad checksum
2=short message
4=long message
8=unknown opcode
3 crc high
4 crc low
[127]
Send Frame Count SEND
Offset Name Comments
0 4 Length
1 1 Opcode
2 crc high
3 crc low
Response
Offset Name Comments
0 8 Length
1 1 Opcode
2 FC3 high byte
3 FC2
4 FCl
5 FC0 low byte
6 crc high
7 crc low
[128]
Set time SEND
Offset Name Comments
0 11 Length
1 2 Opcode
2 hours Mask with hex 80 for
PM.
3 minutes
4 seconds
5 day of week
6 month
7 day
8 year
9 crc high
10 crc low
Time formats in RCA 7170 clock/calendar formats
Response
Message number 0 with zero status.
[129]
Send Time SEND
Offset Name Comments
0 4 Length
1 3 Opcode
2 crc high
3 crc low
Response
Offset Name Comments
0 11 Length
1 3 Opcode
2 hours Mask with hex 80 for
PM.
3 minutes
4 seconds
5 day of week
6 month
7 day
8 year
9 crc high
10 crc low
Time formats in RCA 7170 clock/calendar formats
[130]
Send Authenticator program identification SEND
Offset Name Comments
0 4 Length
l 4 Opcode
2 crc high
3 crc low
Response
Offset Name Comments
0 12 Length
1 4 Opcode
2 NO Name in ASCII
3 N1
4 N2
5 N3
6 N4
7 N5
8 N6
9 N7
10 crc high
11 crc low
[131]
Send EEPROM tracking data SEND
Offset Name Comments
0 4 Length
l 5 Opcode
2 crc high
3 crc low
Response
Offset Name Comments
0 68 Length
1 5 Opcode
2 ET0 byte 0
3 ET1 byte 1
. .
. .
. .
65 ET63 byte 63
66 crc high
67 crc low
[132]
Send program checksum SEND
Offset Name Comments
0 4 Length
1 6 Opcode
2 crc high
3 crc low
Response
Offset Name Comments
0 6 Length
1 6 Opcode
2 PCRC1 High byte program
checksum
3 PCRC0 Low byte program
checksum
4 crc high
5 crc low
[133]
Send installed key #
Offset Name Comments
0 4 Length
1 7 Opcode
3 crc high
4 crc low
Response
Offset Name Comments
0 7 Length
1 7 Opcode
2 KS Key Status
0=key installed
1=no key installed
2=user key installed
3 KEY1 High byte key number
4 KEY0 Low byte key number
5 crc high
6 crc low
[134]
Install key SEND
Offset Name Comments
0 6 Length
1 8 Opcode
2 KEY1 High byte key number
3 KEY0 Low byte key number
4 crc high
5 crc low
Response
Offset Name Comments
0 5 Length
1 8 Opcode
2 KEYSTAT 0=installed
1=key not
initialized
2=key deactivated
4=key checksum fail
8=key already
installed
3 crc high
4 crc low
[135]
Bulk erase EEPROM SEND
Offset Name Comments
0 4 Length
1 9 Opcode
3 crc high
4 crc low
Response
Offset Name Comments
0 5 Length
1 9 Opcode
2 status 0=erase to all hex
FF's
1=did not erase
3 crc high
4 crc low
[136]
Erase Authenticator write buffer SEND
Offset Name Comments
0 5 Length
1 l0 Opcode
2 crc high
3 crc low
Response
Message number 0 with 0 status.
[137]
Send key data SEND
Offset Name Comments
0 6 Length
1 11 Opcode
2 KEY1 High byte key number
3 KEY0 Low byte key number
4 crc high
5 crc low
[138]
Send key data
Response
The V and F register data is zero if the key status is "key
initialized" or "key in use".
Offset Name Comments
0 44 Length
1 11 Opcode
2 KEY1 High byte key number
3 KEY0 Low byte key number
4 Status bit
Active 0's 0 key initialized
1 key in use
2 key deactivated
3 not used
4 not used
5 not used
6 not used
7 key checksum failed
5 Vl High byte V register
6 V0 Low byte V register
7 F7 Highest byte F register
8 F6
9 F5
10 F4
11 F3
12 F2
13 Fl
14 F0 Lowest byte F register. Bit 0 is
unused and set to 0. Bit 0 is the
lowest bit.
15 CRC1 High byte of CRC of V and F keys
16 CRC0 Low byte of CRC
17 DI6 Year key initialized
18 DI5 Month key initialized
19 DI4 Day key initialized
20 DI3 Day of week key initialized
21 DI2 Seconds key initialized
22 DI1 Minute key initialized
23 DI0 Hour key initialized
24 DS6 Year key activated
25 DS5 Month key activated
26 DS4 Day key activated
27 DS3 Day of week key activated
28 DS2 Seconds key activated
29 DS1 Minute key activated
30 DS0 Hour key activated
[139]
Send key data
31 DE6 Year key deactivated
32 DE5 Month key deactivated
33 DE4 Day key deactivated
34 DE3 Day of week key deactivated
35 DE2 Seconds key deactivated
36 DE1 Minute key deactivated
37 DE0 Hour key deactivated
38 FCO Highest byte software frame
39 FC1 counter
40 FC2
41 FC3 Lowest byte software frame
counter
42 crc high
43 crc low
[140]
Unsolicited Message Start SEND
The authenticator prompts for permission to send a message by
setting the Poll Authenticator bit, bit 3, in the status byte.
The authenticator wishes to transmit an unsolicited messaqe.
The authenticator does not send the message until the Unsolicited
Message Start is sent to it. Make sure the Data Out Ready bit is
the status register is clear before sending this message. This
bit is cleared by reading the Data Out register at offset 5
Offset Name Comments
0 4 Length
1 12 opcode
3 FE hex crc high
4 B7 hex crc low
If the message explains an Authenticator fatal message, then the
D register offline bit is set and hardware authentication
stopped.
[141]
Install key SEND
Install the key in the EEPROM or RAM. The key number must be in
the range 0 to maximum number of keys held in the key EEPROM. Or
it must be in the range -1 to the minus the maximum number of
user keys held in RAM.
Offset Name Comments
0 18 Length
1 13 Opcode
2 KEY1 High byte key number
3 KEY0 Low byte key number
4 V1 High byte V register
5 V0 Low byte V register
6 F7 Highest byte F register
7 F6
8 F5
9 F4
10 F3
11 F2
12 F1
13 F0 Lowest byte F register. Bit 0 is
unused and set to 0. Bit 0 is the
lowest bit.
14 CRC1 High byte of CRC of V and F keys
15 CRC0 Low byte of CRC
counter
16 crc high
17 crc low
[142]
Install key
Response
Offset Name Comments
0 5 Length
1 13 Opcode
2 status O=okay
1=bad checksum
2=short message
4=long message
8=key # < 0
10=key # > maximum
allowed
20= EEPROM write error
3 crc high
4 crc low
[143]
AUTHENTICATOR INTERNAL MEMORY SPACE ALLOCATION
Hex Address Contents
30 8051 hardware stack. At software
initialization location 81, SP,
contains 2F. The hardware stack
expands upward.
Hex Address Contents
2F X7L
2E X7H
2D X6L
2C X6H
2B X5L
2A X5H
29 X4L
28 X4H
27 X3L
26 X3H
25 X2L
24 X2H
23 X1L
22 X1H
21 X0L
20 X0H
X0, X1, X2, and X3 are for operating system temporary storage.
X4 through X7 are user definable.
[144]
AUTHENTICATOR INTERNAL MEMORY SPACE ALLOCATION
1F R7 Frame counter low byte
1E R6 Frame counter
1D R5 Frame counter
1C R4 Frame counter high byte
1B R3 Key # low byte
1A R2 Key # high byte
19 R1 V1 high byte
16 Bank 3 R0 V0 low byte
17 R7 F7 high byte
16 R6 F6
15 R5 F5
14 R4 F4
13 R3 F3
12 R2 F2
11 R1 F1
10 Bank 2 R0 F0 low byte
0F R7 Used for M*, U/, (FIND)
0E R6 Used for M*, U/, (FIND)
0D R5 Used for M*, U/, (FIND)
0C R4 Used for M*, U/, (FIND)
0B R3 Used for M*, U/, (FIND)
0A R2 Used for M*, U/, (FIND)
09 R1 Used for M*, U/, (FIND)
08 Bank 1 R0 Used for M*, U/, (FIND)
07 R7 FORTH RP
06 R6 FORTH RP
05 R5 FORTH SP
04 R4 FORTH SP
03 R3 FORTH IP
02 R2 FORTH IP
01 R1 FORTH W
00 Bank 0 R0 FORTH W also temporary
assembler stack pointer
Key # of the current key, V and F, installed in internal RAM
locations 10-19. Key # 0 indicates no key installed.